package com.viaje.action.sugerencia;

import org.apache.struts2.convention.annotation.*;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.validator.annotations.*;

import javax.persistence.*;

import com.viaje.common.util.Utilitario;
import com.viaje.model.Sugerencia;

public class EnviarSugerenciaAction extends ActionSupport{
	
	private static final long serialVersionUID = 1L;
	private Sugerencia sugerencia;
	private String message;	
	
	@Validations(
		       requiredStrings =
		        	{  @RequiredStringValidator(type = ValidatorType.SIMPLE, fieldName = "sugerencia.text_sugerencia", key = "enviar.sugerencia.text_sugerencia.required")
		        	},
		        	stringLengthFields =
                {
		    		   @StringLengthFieldValidator(type = ValidatorType.SIMPLE, trim = true, minLength="10" , maxLength = "100", fieldName = "sugerencia.text_sugerencia", key = "enviar.sugerencia.text_sugerencia.length"),
		    		  
                })
	@Action(value="/enviar-sugerencia",
	results={
			@Result(name="exito",type="tiles",location="message.tiles"),
			@Result(name="error",type="tiles",location="enviarSugerencia.tiles"),
			@Result(name="input",type="tiles",location="enviarSugerencia.tiles")
			},
	interceptorRefs={
			 @InterceptorRef("fileUpload"), 
			 @InterceptorRef("basicStack"),
			 @InterceptorRef("jsonValidationWorkflowStack")})
	public String execute(){
		String result="exito";	
			EntityManager em= 
					Utilitario.getInstance().getEntityManager();
			EntityTransaction tx=em.getTransaction();	
			try{
				tx.begin();
				em.persist(sugerencia);
				tx.commit();
				result="exito";
				message = getText("enviar.sugerencia.message.exito");				
			}catch (Exception e) {
				e.printStackTrace();
				tx.rollback();
				message = getText("enviar.sugerencia.message.error");
			}
		return result;	
	}//execute
	public Sugerencia getSugerencia() {
		return sugerencia;
	}
	public void setSugerencia(Sugerencia sugerencia) {
		this.sugerencia = sugerencia;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
}

